Skip to content

build: use full installer IDE for local dev (ZIP stays CI-only); bump 262 → 2026.2.1 - #960

Merged
dividedmind merged 2 commits into
mainfrom
dev/use-installer-for-dev
Aug 23, 2026
Merged

build: use full installer IDE for local dev (ZIP stays CI-only); bump 262 → 2026.2.1#960
dividedmind merged 2 commits into
mainfrom
dev/use-installer-for-dev

Conversation

@dividedmind

Copy link
Copy Markdown
Contributor

Summary

Resolve the IntelliJ Platform IDE per environment: keep the cross-platform (multi-OS) ZIP on CI, but use the complete OS-specific installer for local development so runIde works on recent (2026+) builds. Also bump the 262 target to the released 2026.2.1.

Background

The build resolves the IntelliJ Platform as the multi-OS ZIP distribution (useInstaller = false), introduced so CI can cache one OS-agnostic IDE and share it across all runners. That's ideal for headless CI tests, but the ZIP is an incomplete runtime: it bundles no JBR and omits native components — notably JCEF and the 2026 platform-daemon. On 2026+ builds this breaks local runIde:

  • JCEF: SEVERE - #c.i.u.j.StartupTest - Startup JCEF test is failed (because CefApp wasn't initialized)
  • platform-daemon: NoSuchFileException: .../plugins/platform-daemon-plugin/jetbrainsd_linux_x86_64.tar.gz

Comparing an installer- vs ZIP-extracted IDE on disk confirmed the root cause: the installer ships a bundled jbr/ and the jetbrainsd_* daemon native; the ZIP ships neither. The JBR is resolved separately by Gradle (the OS-specific com.jetbrains:jbr artifact, kept in the Gradle cache, not the IDE cache), so it can't backfill the missing native components — only the installer is whole.

Changes

  • useInstaller = !isCI for both the build platform and the plugin-verifier IDEs, so they stay consistent within each environment.
  • Log the chosen artifact at configuration time (IntelliJ Platform IDE artifact: multi-OS ZIP (CI) / installer (local)), so the selection is visible in build output rather than silent.
  • Bump 262 test/verify target to the released 2026.2.1.

Why this is safe on CI

  • isCI keys on the CI environment variable, which GitHub Actions always sets to true and no workflow here overrides. CI continues to resolve the ZIP — no change to the IDE caching setup or the workflows.
  • The plugin is compiled against the same platform API in either distribution, so buildPlugin / publishPlugin are unaffected.

Testing

  • runIde verified locally on both 251 and 262 (2026.2.1): JCEF and the platform-daemon start correctly with the installer.
  • Build script compiles; the config-time log prints once and reads installer (local) locally.

Note for developers

If you previously ran the ZIP locally, remove the stale ZIP-extracted IDE dir once so the installer re-populates (the managed-cache dir name is identical for both artifacts), e.g.:

rm -rf .intellijPlatform/ides/IU-2026.2.1

Assisted-by: Claude:claude-opus-4-8

The multi-OS ZIP distribution is an incomplete runtime: it omits the JBR
and native components (JCEF, platform-daemon), which breaks runIde on 2026+
builds locally. Keep the ZIP on CI, where it enables the OS-agnostic shared
IDE cache and only headless tests run, but resolve the OS-specific installer
locally so runIde has a complete, launchable IDE.

Gate on the CI environment variable (always "true" on GitHub Actions) via
the existing isCI flag, and log the chosen artifact so the selection is
visible in build output rather than silent.

Assisted-by: Claude:claude-opus-4-8
@dividedmind dividedmind self-assigned this Aug 21, 2026
@dividedmind
dividedmind requested review from kgilpin and a lite review from Copilot August 21, 2026 12:44

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the Gradle build to choose the appropriate IntelliJ Platform IDE distribution per environment (ZIP on CI for shared caching; OS installer locally for a runnable runIde on 2026+), and bumps the 262 IDE target to 2026.2.1.

Changes:

  • Select IDE artifact via useInstaller = !isCI for both the build platform dependency and plugin verifier IDEs.
  • Add a configuration-time lifecycle log indicating which IDE artifact type was selected.
  • Bump gradle-262.properties IDE version from 2026.2.0.1 to 2026.2.1.

Reviewed changes

Copilot reviewed 1 out of 2 changed files in this pull request and generated no comments.

File Description
build.gradle.kts Switches IntelliJ Platform resolution between ZIP (CI) and installer (local) and logs the chosen artifact; aligns plugin verifier IDE selection with the same rule.
gradle-262.properties Updates the IDE version used for 262 builds to 2026.2.1.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@dividedmind
dividedmind merged commit 7aba604 into main Aug 23, 2026
6 checks passed
@dividedmind
dividedmind deleted the dev/use-installer-for-dev branch August 23, 2026 11:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants